/**
 * FileName: BaseDTO
 * Author: TangZaoBang
 * Date: 2023/04/29 13:12
 * Description:
 * <p>
 * History:
 * <author> TangZaoBang
 * <time> 2023/04/29 13:12
 * <version> 1.0.0
 * <desc> 版本描述
 */

package com.bosssoft.quickstart.demo.base;


import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDate;


/**
 * @Class BaseDTO
 * @Description 所有DTO的父类 BaseDTO主要针对界面的增加和修改进行设计，考虑适当的冗余也参考了BaseEntity字段，
 * @Author TangZaoBang
 * @Date 2023/04/29 13:12
 * @Version
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ApiModel("对应数据库表的公共字段")
public abstract class BaseDTO {
    /**
     *  记录被创建的时间
     */
    @ApiModelProperty("修改时间L")
    private LocalDate createdTime;
    /**
     *  创建人用于跟踪谁创建也用于按人员查询数据
     */
    @ApiModelProperty("创建人")
    private Long createdBy;
    /**
     *  更新时间
     */

    @ApiModelProperty("修改时间L")

    private LocalDate updatedTime;
    /**
     *  更新人
     */
    @ApiModelProperty("修改人")

    private Long updatedBy;
    /**
     *  状态 具体参考常量
     */
    @ApiModelProperty("状态 0 代表注销或者假删除 1 代表正常")
    private Byte status;
    /**
     *  版本 初始为1 由mybatis 插件自动维护
     */
    @ApiModelProperty("版本号采用随机数")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long version;




}
